<?php
declare(strict_types=1);

namespace Zlf\Unit;


use Exception;

/**
 * 文件工具
 * Class Arr
 * @package Core\Method
 */
class File
{
    /**
     * 持续写入文件
     * @param string $file
     * @param string $content
     * @return false|string
     */
    public static function appendWrite(string $file, string $content): ?string
    {
        try {
            if (!file_exists($file)) {
                $fileDir = dirname($file);
                if (!is_dir($fileDir)) {
                    if (!Directory::created($fileDir)) {
                        return null;
                    }
                }
            }
            $fileRes = fopen($file, "a+");
            if ($fileRes) {
                fwrite($fileRes, $content);
                fclose($fileRes);
                return $file;
            }
            return null;
        } catch (Exception $exception) {
            return null;
        }
    }


    /**
     * 获取文件扩展名
     * @param string $fileName 文件名称
     * @param bool $lower 是否转小写
     * @return string
     */
    public static function extendName(string $fileName, bool $lower = true): string
    {
        $data = Str::explode('.', $fileName);
        return $lower ? strtolower(Arr::finalValue($data)) : Arr::finalValue($data);
    }
}